package backtrack_Recursion;

import java.util.Scanner;

public class RecursionExample {
    // 比如使用递归来解决阶乘问题

    /**
     * 递归（Recursion）是一种 函数调用自身 的编程技巧。它通常包含两个部分：
     *
     *     递归终止条件（Base Case）：用于停止递归，防止无限递归导致栈溢出。
     *     递归调用（Recursive Case）：在更小的子问题上调用自身。
     *
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        System.out.println(fact(n));
    }

    private static int fact(int n) {
        if(n == 0) return 1;
        return n * fact(n-1);
    }
}
